P-Broken-Line
Memory limit: 32 MB
In the rectangular coordinate system every point with integer coordinates is called p-point. Any segment with different ends being p-points, parallel to one of the axis of coordinates, is called p-segment. Only closed segments (with end points belonging to the segment) are taken into consideration. A broken line built from
p-segments, in which every two consecutive ones are perpendicular, we call p-broken-line of degree
.
Task
Write a program which:
- reads descriptions of a certain number of p-segments and coordinates of two different p-points
and
, from the standard input,
- determines minimum degree of a p-broken-line connecting these two points and not crossing any from given p-segments or states, that such a p-broken-line does not exist.
- writes the result to the standard output.
Input
Description of a p-point consists of two non-negative integers, being being coordinates
and
adequately of this p-point, separated by a single space, These numbers are from range
. The first line of the standard input contains only the description of the p-point
. The second line contains only the description of the p-point
. The third line consists exactly of one non-negative integer n being the number of p-segments,
. Each of next
lines consists of descriptions of exactly two p-points, separated by a single space. These are coordinates of the ends of one p-segment.
Output
The first and the the only line of standrd output should contain either one number being minimum degree of p-broken-line connecting points
and
and not crossing any of given p-segments, or the word "BRAK", if a p-broken-line having above-mentioned properties does not exist.
Example
For the input data:
1 2
3 4
5
0 0 7 0
0 5 7 5
2 2 2 7
4 0 4 3
3 2 6 2
the correct result is:
5
Task author: Grzegorz Jakacki.